# -*- coding: utf-8 -*-
# @Time    : 2024/6/27 18:22
# @Author  : yujiahao
# @File    : 00_whats_numpy.py
# @description:认识NumPy和安装

"""
【认识Numpy】

    NumPy 的全称是“Numeric Python”，它是 Python 的第三方扩展包，主要用来计算、处理一维或多维数组。

    在数组算术计算方面，NumPy 提供了大量的数学函数。NumPy 的底层主要用 C 语言编写，因此它能够高速地执行数值计算。NumPy 还提供了多种数据结构，这些数据结构能够非常契合的应用在数组和矩阵的运算上。

    NumPy 的前身是 Numeric 程序包，该包由 Jim Hugunin 开发，在这之后，他还开发了另一个类似的程序包 Numarray，相比前者而言 Numarray 具有更加全面的功能。在 2005 年，Travis Oliphant 通过整合 Numarray 与 Numeric 软件包的功能，从而集成了 NumPy。NumPy 的最新版本 1.19.2 已于 2020 年 9 月 10 日发布。NumPy 作为一个开源项目，它由许多协作者共同开发维护，这也是 NumPy 的优势之一。

    NumPy 使用需求
        随着数据科学（Data Science，简称 DS，包括大数据分析与处理、大数据存储、数据抓取等分支）的蓬勃发展，像 NumPy、SciPy（Python 科学计算库）、Pandas（基于 NumPy 的数据处理库）等数据分析库都有了大量的增长，它们都具有较简单的语法格式。

        在矩阵乘法与数组形状处理上，NumPy 有着非常不错的性能，再加上 NumPy 的计算速度很快，这些都是 NumPy 成为一款数据分析工具的重要原因。数组形状可以理解为数组的维度，比如一维数组、二维数组、三维数组等；以二维数组为例，改变数组形状就是交换数组的行和列，也即将数组旋转 90 度。

    NumPy 可以很便捷高效地处理大量数据，那么使用 NumPy 做数据处理有哪些优点呢？总结如下：

        - NumPy 是 Python 科学计算基础库；
        - NumPy 可以对数组进行高效的数学运算；
        - NumPy 的 ndarray 对象可以用来构建多维数组；
        - NumPy 能够执行傅立叶变换与重塑多维数组形状；
        - NumPy 提供了线性代数，以及随机数生成的内置函数。

    NumPy 应用场景
        NumPy 通常与 SciPy（Python 科学计算库）和 Matplotlib（Python 绘图库）等软件包组合使用，这种组合方式被用来广泛地代替 MatLab 的使用。

        MatLab 是一款强大的数学计算软件，广泛应用在数据分析、电子通信、深度学习、图像处理、机器视觉、量化金融等领域，但近些年随着 Python 语言的迅猛发展，Python 被看作是一种更适合代替 MatLab 的编程语言。您可以使用 NumPy、SciPy 与 Matplotlib 等 Python 工具包搭建科学计算环境，比如 Anaconda 就是是一个开源的 Python 发行版本，它包含了 Python、NumPy 等 180 多个科学包及其依赖项。

    因为 NumPy 是 Python 的扩展程序包，所以您在学习 NumPy 之前应该具备一些 Python 基础知识，这对本教程的学习将大有裨益。如果您想了解关于 NumPy 更多的知识可浏览 NumPy 官网（https://numpy.org/）。



【下载与安装】

    NumPy 安装指南

    1. Windows 系统安装
    --------------------

    1.1 使用 pip 安装 NumPy
        这是最简单、最轻量级的方法，只需在命令行中执行以下命令：
        pip install numpy

    1.2 使用 SciPy 栈安装
        SciPy 栈集成了常用的数值计算与机器学习库，如 NumPy、Matplotlib、SciPy、IPython 等，推荐使用 Anaconda 进行安装。Anaconda 是一个开源的 Python 发行版，包含了180多个科学包及其依赖项。

        安装步骤：
        1. 访问 Anaconda 官网 (https://www.anaconda.com/) 下载 Anaconda 或 Miniconda（轻量版）。
        2. 安装 Anaconda 或 Miniconda。

        其他 SciPy 栈选项：
        - Python(x,y)：适用于 Python 2，主要用于数值计算、数据分析和数据可视化。
        - Pyzo：跨平台 Python IDE，适合科学计算。
        - WinPython：免费的 Python 发行版，包含常用的科学计算包与 Spyder IDE，支持 Windows 系统。

    2. MacOSX 系统安装
    -------------------

    2.1 使用 pip 安装 NumPy 及其他科学计算包：
        pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
        注意：-i 参数指定国内下载源，加快下载速度。

    3. Linux 系统安装
    ------------------

    3.1 Ubuntu/Debian 系统
        在终端执行以下命令：
        sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

    3.2 Redhat/CentOS 系统
        在终端执行以下命令：
        sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nose
        注意：不同的软件包之间必须使用空格隔开。

    4. 安装验证
    ------------

    4.1 打开 Python 交互解释器，导入 NumPy 模块：
        import numpy as np
        如果未出现错误提示，则表示安装成功。

    5. 总结
    -------

    - Windows 系统：推荐使用 pip 或 Anaconda 安装 NumPy。
    - MacOSX 系统：使用 pip 安装，并指定国内下载源加快速度。
    - Linux 系统：根据发行版使用 apt-get 或 yum 安装 NumPy 及其他科学计算包。

    通过上述步骤，您可以在不同的操作系统上成功安装 NumPy，并开始进行科学计算和数据分析。

"""
